{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Widget related imports\n",
    "import ipywidgets as widgets\n",
    "from IPython.display import display, clear_output, Javascript\n",
    "from traitlets import Unicode\n",
    "\n",
    "# nbconvert related imports\n",
    "from nbconvert import get_export_names, export_by_name\n",
    "from nbconvert.writers import FilesWriter\n",
    "from nbformat import read, NO_CONVERT\n",
    "from nbconvert.utils.exceptions import ConversionException"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook shows a really roundabout way to get the name of the notebook file using widgets.  The true purpose of this demo is to demonstrate how Javascript and Python widget models are related by `id`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create a text Widget without displaying it.  The widget will be used to store the notebook's name which is otherwise only available in the front-end."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "notebook_name = widgets.Text()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Get the current notebook's name by pushing JavaScript to the browser that sets the notebook name in a string widget."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "IPython.notebook.kernel.widget_manager.get_model('23f266cb606d4d24af0e2e5df473d7e0').then(function(model) {\n",
       "    model.set('value', IPython.notebook.notebook_name);\n",
       "    model.save();\n",
       "});\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "js = \"\"\"IPython.notebook.kernel.widget_manager.get_model('%s').then(function(model) {\n",
    "    model.set('value', IPython.notebook.notebook_name);\n",
    "    model.save();\n",
    "});\n",
    "\"\"\" % notebook_name.model_id\n",
    "display(Javascript(data=js))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Export As (nbconvert).ipynb'"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "filename = notebook_name.value\n",
    "filename"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create the widget that will allow the user to Export the current notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "exporter_names = widgets.Dropdown(options=get_export_names(), value='html')\n",
    "export_button = widgets.Button(description=\"Export\")\n",
    "download_link = widgets.HTML(visible=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Export the notebook when the export button is clicked."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "file_writer = FilesWriter()\n",
    "\n",
    "def export(name, nb):\n",
    "    \n",
    "    # Get a unique key for the notebook and set it in the resources object.\n",
    "    notebook_name = name[:name.rfind('.')]\n",
    "    resources = {}\n",
    "    resources['unique_key'] = notebook_name\n",
    "    resources['output_files_dir'] = '%s_files' % notebook_name\n",
    "\n",
    "    # Try to export\n",
    "    try:\n",
    "        output, resources = export_by_name(exporter_names.value, nb)\n",
    "    except ConversionException as e:\n",
    "        download_link.value = \"<br>Could not export notebook!\"\n",
    "    else:\n",
    "        write_results = file_writer.write(output, resources, notebook_name=notebook_name)\n",
    "    \n",
    "        download_link.value = \"<br>Results: <a href='files/{filename}'><i>\\\"{filename}\\\"</i></a>\".format(filename=write_results)\n",
    "        download_link.visible = True\n",
    "        \n",
    "def handle_export(widget):\n",
    "    with open(filename, 'r') as f:\n",
    "        export(filename, read(f, NO_CONVERT))\n",
    "        \n",
    "export_button.on_click(handle_export)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Display the controls."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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Szlp0KBBsWPHjqmnnnrq8lKOdwwBAgQIECBAgACBSgjYFaqEumsSIECAAAECBAgQIECAQM0KCNo121oTI0CAAAECBAgQIECAAIFKCAjalVB3TQIECBAgQIAAAQIECBCoWQFBu2Zba2IECBAgQIAAAQIECBAgUAmBnqDd/W7BDYMHD27t6OjYrxKFuGZtCNTX1/97+/btzU1NTW21MSOzIECAAAECBAgQIECAQO8EeoJ2W1tb18iRI2P48OG9G8HRBHYRaG9vjy1btkRDQ4O7JawMAgQIECBAgAABAgQKKdAThlpbW7u6dyELiWDS2Qokn6Xc3NwsaGfLajQCBAgQIECAAAECBHIiIGjnpFF5KlPQzlO31EqAAAECBAgQIECAQNYCgnbWosYLQdsiIECAAAECBAgQIECgyAKCdpG7X6a5C9plgjUsAQIECBAgQIAAAQK5EBC0c9GmfBUpaOerX6olQIAAAQIECBAgQCBbAUE7W0+jdQsI2pYBAQIECBAgQIAAAQJFFhC0i9z9Ms1d0C4TrGEJECBAgAABAgQIEMiFgKCdizblq0hBO1/9Ui0BAgQIECBAgAABAtkKCNrZehqtW0DQtgwIECBAgAABAgQIECiyQCGC9o8//hhLliyJVatWxfXXX5/2u7OzM955552466674thjjy3yGsh87oJ25qQGJECAAAECBAgQIEAgRwKFCNpJP1paWmLmzJnxySef9LTn22+/jd9//z1OPvnksrfs3XffjYaGhjj00EPLfq1KX0DQrnQHXJ8AAQIECBAgQIAAgUoKFCZot7a2xg033PA/QTuB7+joiPr6+rL24Keffoorr7wy3VUXtMtKbXACBAgQIECAAAECBAhUXKCwQTu5dfytt96KCRMmxDfffJPeQp6E7qVLl8acOXNi7NixMXHixHj22Wdjw4YN6W70K6+8EkceeWTcc889ceCBB8bmzZtjzZo1ccghh6TPJV933XUxYsSIdIwPPvggzjjjjHjxxRdj+vTpcffdd8fVV18d48ePj+OPP77ijS9nAXa0y6lrbAIECBAgQIAAAQIEql2gUEE7Cbw7n9H+8ssv45RTTonLLrss7dEPP/wQU6dOjdtvvz22bt0al1xySfr1999/Px588MF44okn4qCDDkp3pk877bQ0PE+ePDmefvrpGDZsWKxbty7uvffeeOmll9JgfuONN8ayZcvSW9NHjRqVBuwkqNvRrvZvCfURIECAAAECBAgQIECgfwKFCtq73jq+Y8eOePvtt9Md7Z2vlStXxsKFC2Pt2rWx//77p1/++OOP48knn0x/Ja/nn38+kuetZ8yYke58v/nmm+nX//777xg3blw8/vjj6a3ot9xySxqsd74E7f4tVGcTIECAAAECBAgQIEAgLwKFDdo7G7TrM9rJDnRyO/npp5+e7lzvKWivXr06DeiXX355ujv+4YcfRl1dXXrsOeecEw888ED6Z0G7uWdt5eWbQZ0ECBAgQIAAAQIECBDIQqDQQTt5TnvFihUxZcqU+OKLL6K9vT2OO+649Hby5Fbxo48+Ot3RXrBgQSxfvjz1nj9/fvpxYGeddVZMmjQpZs2aFWeffXb89ttvce2116a3i2/atClmz54dr776ak+Pkue1kzEOOOCA9Bb0Wn55RruWu2tuBAgQIECAAAECBAjsS6AQQTv5HO2nnnoqfX562rRpMXTo0EhuHf/000/T57KPOOKIuOOOO+Lhhx9O3+QsuS08Cd3z5s2Ln3/+OX2jtGSHO9mp/uWXX9JAnby++uqrNHg3NTXFX3/9Feeff34cfvjh6W3mixcvjvvuuy/dHU9ec+fOjaSOZKe71j+3W9De17edvydAgAABAgQIECBAoJYFChG0+9PA3Z/R7s9YRTlX0C5Kp82TAAECBAgQIECAAIE9CQja+1gXH330UbobvvPN0CyjfQsI2vs2cgQBAgQIECBAgAABArUrIGjvpbfJc9eLFi1K3yAtuUX8pJNOqt2VkOHMBO0MMQ1FgAABAgQIECBAgEDuBATt3LWs+gsWtKu/RyokQIAAAQIECBAgQKB8AoJ2+WwLO7KgXdjWmzgBAgQIECBAgAABAt0CgrZlkLmAoJ05qQEJECBAgAABAgQIEMiRgKCdo2blpVRBOy+dUicBAgQIECBAgAABAuUQELTLoVrwMQXtgi8A0ydAgAABAgQIECBQcAFBu+ALoBzTF7TLoWpMAgQIECBAgAABAgTyIiBo56VTOapT0M5Rs5RKgAABAgQIECBAgEDmAj1Be/369V2jR4+OIUOGZH4RAxZHYNu2bbFx48ZobGzsWVvFmb2ZEiBAgAABAgQIECBAYJd3HW9paZlSV1e3rLOzkwuBPgsMGjQourq6po4ZM2Z5nwdxIgECBAgQIECAAAECBHIsYNcxx81TOgECBAgQIECAAAECBAhUn4CgXX09UREBAgQIECBAgAABAgQI5FhA0M5x85ROgAABAgQIECBAgAABAtUnIGhXX09URIAAAQIECBAgQIAAAQI5FhC0c9w8pRMgQIAAAQIECBAgQIBA9QkI2tXXExURIECAAAECBAgQIECAQI4FBO0cN0/pBAgQIECAAAECBAgQIFB9AoJ29fVERQQIECBAgAABAgQIECCQYwFBO8fNUzoBAgQIECBAgAABAgQIVJ+AoF19PVERAQIECBAgQIAAAQIECORYQNDOcfOUToAAAQIECBAgQIAAAQLVJ/AfhQ2rlK0xgygAAAAASUVORK5CYII=",
      "text/html": [
       "<img src= class=\"jupyter-widget\">\n",
       "<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"layout\":\"IPY_MODEL_539631829f7d42f69900a8be5dfc1a9d\",\"_options_labels\":[\"custom\",\"html\",\"latex\",\"markdown\",\"notebook\",\"pdf\",\"python\",\"rst\",\"script\",\"slides\"],\"value\":\"html\"},{},{\"layout\":\"IPY_MODEL_b742a29038314a40ad129fe0b04d52c9\",\"description\":\"Export\"},{},{\"visible\":false,\"layout\":\"IPY_MODEL_995a5d0765ed408bab7092202d894a17\"}]</script>"
      ]
     },
     "metadata": {
      "isWidgetSnapshot": true
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(exporter_names, export_button, download_link)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.4.3+"
  },
  "widgets": {
   "state": {
    "073cd4d5b3224dc4a0ab990a846cd672": {
     "views": [
      {
       "cell": {
        "cell_type": "code",
        "execution_count": 7,
        "metadata": {
         "collapsed": false,
         "trusted": true
        },
        "outputs": [
         {
          "data": {
           "image/png": "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Szlp0KBBsWPHjqmnnnrq8lKOdwwBAgQIECBAgACBSgjYFaqEumsSIECAAAECBAgQIECAQM0KCNo121oTI0CAAAECBAgQIECAAIFKCAjalVB3TQIECBAgQIAAAQIECBCoWQFBu2Zba2IECBAgQIAAAQIECBAgUAmBnqDd/W7BDYMHD27t6OjYrxKFuGZtCNTX1/97+/btzU1NTW21MSOzIECAAAECBAgQIECAQO8EeoJ2W1tb18iRI2P48OG9G8HRBHYRaG9vjy1btkRDQ4O7JawMAgQIECBAgAABAgQKKdAThlpbW7u6dyELiWDS2Qokn6Xc3NwsaGfLajQCBAgQIECAAAECBHIiIGjnpFF5KlPQzlO31EqAAAECBAgQIECAQNYCgnbWosYLQdsiIECAAAECBAgQIECgyAKCdpG7X6a5C9plgjUsAQIECBAgQIAAAQK5EBC0c9GmfBUpaOerX6olQIAAAQIECBAgQCBbAUE7W0+jdQsI2pYBAQIECBAgQIAAAQJFFhC0i9z9Ms1d0C4TrGEJECBAgAABAgQIEMiFgKCdizblq0hBO1/9Ui0BAgQIECBAgAABAtkKCNrZehqtW0DQtgwIECBAgAABAgQIECiyQCGC9o8//hhLliyJVatWxfXXX5/2u7OzM955552466674thjjy3yGsh87oJ25qQGJECAAAECBAgQIEAgRwKFCNpJP1paWmLmzJnxySef9LTn22+/jd9//z1OPvnksrfs3XffjYaGhjj00EPLfq1KX0DQrnQHXJ8AAQIECBAgQIAAgUoKFCZot7a2xg033PA/QTuB7+joiPr6+rL24Keffoorr7wy3VUXtMtKbXACBAgQIECAAAECBAhUXKCwQTu5dfytt96KCRMmxDfffJPeQp6E7qVLl8acOXNi7NixMXHixHj22Wdjw4YN6W70K6+8EkceeWTcc889ceCBB8bmzZtjzZo1ccghh6TPJV933XUxYsSIdIwPPvggzjjjjHjxxRdj+vTpcffdd8fVV18d48ePj+OPP77ijS9nAXa0y6lrbAIECBAgQIAAAQIEql2gUEE7Cbw7n9H+8ssv45RTTonLLrss7dEPP/wQU6dOjdtvvz22bt0al1xySfr1999/Px588MF44okn4qCDDkp3pk877bQ0PE+ePDmefvrpGDZsWKxbty7uvffeeOmll9JgfuONN8ayZcvSW9NHjRqVBuwkqNvRrvZvCfURIECAAAECBAgQIECgfwKFCtq73jq+Y8eOePvtt9Md7Z2vlStXxsKFC2Pt2rWx//77p1/++OOP48knn0x/Ja/nn38+kuetZ8yYke58v/nmm+nX//777xg3blw8/vjj6a3ot9xySxqsd74E7f4tVGcTIECAAAECBAgQIEAgLwKFDdo7G7TrM9rJDnRyO/npp5+e7lzvKWivXr06DeiXX355ujv+4YcfRl1dXXrsOeecEw888ED6Z0G7uWdt5eWbQZ0ECBAgQIAAAQIECBDIQqDQQTt5TnvFihUxZcqU+OKLL6K9vT2OO+649Hby5Fbxo48+Ot3RXrBgQSxfvjz1nj9/fvpxYGeddVZMmjQpZs2aFWeffXb89ttvce2116a3i2/atClmz54dr776ak+Pkue1kzEOOOCA9Bb0Wn55RruWu2tuBAgQIECAAAECBAjsS6AQQTv5HO2nnnoqfX562rRpMXTo0EhuHf/000/T57KPOOKIuOOOO+Lhhx9O3+QsuS08Cd3z5s2Ln3/+OX2jtGSHO9mp/uWXX9JAnby++uqrNHg3NTXFX3/9Feeff34cfvjh6W3mixcvjvvuuy/dHU9ec+fOjaSOZKe71j+3W9De17edvydAgAABAgQIECBAoJYFChG0+9PA3Z/R7s9YRTlX0C5Kp82TAAECBAgQIECAAIE9CQja+1gXH330UbobvvPN0CyjfQsI2vs2cgQBAgQIECBAgAABArUrIGjvpbfJc9eLFi1K3yAtuUX8pJNOqt2VkOHMBO0MMQ1FgAABAgQIECBAgEDuBATt3LWs+gsWtKu/RyokQIAAAQIECBAgQKB8AoJ2+WwLO7KgXdjWmzgBAgQIECBAgAABAt0CgrZlkLmAoJ05qQEJECBAgAABAgQIEMiRgKCdo2blpVRBOy+dUicBAgQIECBAgAABAuUQELTLoVrwMQXtgi8A0ydAgAABAgQIECBQcAFBu+ALoBzTF7TLoWpMAgQIECBAgAABAgTyIiBo56VTOapT0M5Rs5RKgAABAgQIECBAgEDmAj1Be/369V2jR4+OIUOGZH4RAxZHYNu2bbFx48ZobGzsWVvFmb2ZEiBAgAABAgQIECBAYJd3HW9paZlSV1e3rLOzkwuBPgsMGjQourq6po4ZM2Z5nwdxIgECBAgQIECAAAECBHIsYNcxx81TOgECBAgQIECAAAECBAhUn4CgXX09UREBAgQIECBAgAABAgQI5FhA0M5x85ROgAABAgQIECBAgAABAtUnIGhXX09URIAAAQIECBAgQIAAAQI5FhC0c9w8pRMgQIAAAQIECBAgQIBA9QkI2tXXExURIECAAAECBAgQIECAQI4FBO0cN0/pBAgQIECAAAECBAgQIFB9AoJ29fVERQQIECBAgAABAgQIECCQYwFBO8fNUzoBAgQIECBAgAABAgQIVJ+AoF19PVERAQIECBAgQIAAAQIECORYQNDOcfOUToAAAQIECBAgQIAAAQLVJ/AfhQ2rlK0xgygAAAAASUVORK5CYII=",
           "text/html": "<img src= class=\"jupyter-widget\">\n<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"layout\":\"IPY_MODEL_539631829f7d42f69900a8be5dfc1a9d\",\"_options_labels\":[\"custom\",\"html\",\"latex\",\"markdown\",\"notebook\",\"pdf\",\"python\",\"rst\",\"script\",\"slides\"],\"value\":\"html\"},{},{\"layout\":\"IPY_MODEL_b742a29038314a40ad129fe0b04d52c9\",\"description\":\"Export\"},{},{\"visible\":false,\"layout\":\"IPY_MODEL_995a5d0765ed408bab7092202d894a17\"}]</script>"
          },
          "metadata": {
           "isWidgetSnapshot": true
          },
          "output_type": "display_data"
         }
        ],
        "source": "display(exporter_names, export_button, download_link)"
       },
       "cell_index": 12,
       "root": true
      }
     ]
    },
    "23f266cb606d4d24af0e2e5df473d7e0": {
     "views": []
    },
    "30ffcb416a7248fe8f45c355b0658cbb": {
     "views": []
    },
    "539631829f7d42f69900a8be5dfc1a9d": {
     "views": []
    },
    "995a5d0765ed408bab7092202d894a17": {
     "views": []
    },
    "b742a29038314a40ad129fe0b04d52c9": {
     "views": []
    },
    "c40401ca6d5d4eb9a2d8ed7b2a10158d": {
     "views": [
      {
       "cell": {
        "cell_type": "code",
        "execution_count": 7,
        "metadata": {
         "collapsed": false,
         "trusted": true
        },
        "outputs": [
         {
          "data": {
           "image/png": "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Szlp0KBBsWPHjqmnnnrq8lKOdwwBAgQIECBAgACBSgjYFaqEumsSIECAAAECBAgQIECAQM0KCNo121oTI0CAAAECBAgQIECAAIFKCAjalVB3TQIECBAgQIAAAQIECBCoWQFBu2Zba2IECBAgQIAAAQIECBAgUAmBnqDd/W7BDYMHD27t6OjYrxKFuGZtCNTX1/97+/btzU1NTW21MSOzIECAAAECBAgQIECAQO8EeoJ2W1tb18iRI2P48OG9G8HRBHYRaG9vjy1btkRDQ4O7JawMAgQIECBAgAABAgQKKdAThlpbW7u6dyELiWDS2Qokn6Xc3NwsaGfLajQCBAgQIECAAAECBHIiIGjnpFF5KlPQzlO31EqAAAECBAgQIECAQNYCgnbWosYLQdsiIECAAAECBAgQIECgyAKCdpG7X6a5C9plgjUsAQIECBAgQIAAAQK5EBC0c9GmfBUpaOerX6olQIAAAQIECBAgQCBbAUE7W0+jdQsI2pYBAQIECBAgQIAAAQJFFhC0i9z9Ms1d0C4TrGEJECBAgAABAgQIEMiFgKCdizblq0hBO1/9Ui0BAgQIECBAgAABAtkKCNrZehqtW0DQtgwIECBAgAABAgQIECiyQCGC9o8//hhLliyJVatWxfXXX5/2u7OzM955552466674thjjy3yGsh87oJ25qQGJECAAAECBAgQIEAgRwKFCNpJP1paWmLmzJnxySef9LTn22+/jd9//z1OPvnksrfs3XffjYaGhjj00EPLfq1KX0DQrnQHXJ8AAQIECBAgQIAAgUoKFCZot7a2xg033PA/QTuB7+joiPr6+rL24Keffoorr7wy3VUXtMtKbXACBAgQIECAAAECBAhUXKCwQTu5dfytt96KCRMmxDfffJPeQp6E7qVLl8acOXNi7NixMXHixHj22Wdjw4YN6W70K6+8EkceeWTcc889ceCBB8bmzZtjzZo1ccghh6TPJV933XUxYsSIdIwPPvggzjjjjHjxxRdj+vTpcffdd8fVV18d48ePj+OPP77ijS9nAXa0y6lrbAIECBAgQIAAAQIEql2gUEE7Cbw7n9H+8ssv45RTTonLLrss7dEPP/wQU6dOjdtvvz22bt0al1xySfr1999/Px588MF44okn4qCDDkp3pk877bQ0PE+ePDmefvrpGDZsWKxbty7uvffeeOmll9JgfuONN8ayZcvSW9NHjRqVBuwkqNvRrvZvCfURIECAAAECBAgQIECgfwKFCtq73jq+Y8eOePvtt9Md7Z2vlStXxsKFC2Pt2rWx//77p1/++OOP48knn0x/Ja/nn38+kuetZ8yYke58v/nmm+nX//777xg3blw8/vjj6a3ot9xySxqsd74E7f4tVGcTIECAAAECBAgQIEAgLwKFDdo7G7TrM9rJDnRyO/npp5+e7lzvKWivXr06DeiXX355ujv+4YcfRl1dXXrsOeecEw888ED6Z0G7uWdt5eWbQZ0ECBAgQIAAAQIECBDIQqDQQTt5TnvFihUxZcqU+OKLL6K9vT2OO+649Hby5Fbxo48+Ot3RXrBgQSxfvjz1nj9/fvpxYGeddVZMmjQpZs2aFWeffXb89ttvce2116a3i2/atClmz54dr776ak+Pkue1kzEOOOCA9Bb0Wn55RruWu2tuBAgQIECAAAECBAjsS6AQQTv5HO2nnnoqfX562rRpMXTo0EhuHf/000/T57KPOOKIuOOOO+Lhhx9O3+QsuS08Cd3z5s2Ln3/+OX2jtGSHO9mp/uWXX9JAnby++uqrNHg3NTXFX3/9Feeff34cfvjh6W3mixcvjvvuuy/dHU9ec+fOjaSOZKe71j+3W9De17edvydAgAABAgQIECBAoJYFChG0+9PA3Z/R7s9YRTlX0C5Kp82TAAECBAgQIECAAIE9CQja+1gXH330UbobvvPN0CyjfQsI2vs2cgQBAgQIECBAgAABArUrIGjvpbfJc9eLFi1K3yAtuUX8pJNOqt2VkOHMBO0MMQ1FgAABAgQIECBAgEDuBATt3LWs+gsWtKu/RyokQIAAAQIECBAgQKB8AoJ2+WwLO7KgXdjWmzgBAgQIECBAgAABAt0CgrZlkLmAoJ05qQEJECBAgAABAgQIEMiRgKCdo2blpVRBOy+dUicBAgQIECBAgAABAuUQELTLoVrwMQXtgi8A0ydAgAABAgQIECBQcAFBu+ALoBzTF7TLoWpMAgQIECBAgAABAgTyIiBo56VTOapT0M5Rs5RKgAABAgQIECBAgEDmAj1Be/369V2jR4+OIUOGZH4RAxZHYNu2bbFx48ZobGzsWVvFmb2ZEiBAgAABAgQIECBAYJd3HW9paZlSV1e3rLOzkwuBPgsMGjQourq6po4ZM2Z5nwdxIgECBAgQIECAAAECBHIsYNcxx81TOgECBAgQIECAAAECBAhUn4CgXX09UREBAgQIECBAgAABAgQI5FhA0M5x85ROgAABAgQIECBAgAABAtUnIGhXX09URIAAAQIECBAgQIAAAQI5FhC0c9w8pRMgQIAAAQIECBAgQIBA9QkI2tXXExURIECAAAECBAgQIECAQI4FBO0cN0/pBAgQIECAAAECBAgQIFB9AoJ29fVERQQIECBAgAABAgQIECCQYwFBO8fNUzoBAgQIECBAgAABAgQIVJ+AoF19PVERAQIECBAgQIAAAQIECORYQNDOcfOUToAAAQIECBAgQIAAAQLVJ/AfhQ2rlK0xgygAAAAASUVORK5CYII=",
           "text/html": "<img src= class=\"jupyter-widget\">\n<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"layout\":\"IPY_MODEL_539631829f7d42f69900a8be5dfc1a9d\",\"_options_labels\":[\"custom\",\"html\",\"latex\",\"markdown\",\"notebook\",\"pdf\",\"python\",\"rst\",\"script\",\"slides\"],\"value\":\"html\"},{},{\"layout\":\"IPY_MODEL_b742a29038314a40ad129fe0b04d52c9\",\"description\":\"Export\"},{},{\"visible\":false,\"layout\":\"IPY_MODEL_995a5d0765ed408bab7092202d894a17\"}]</script>"
          },
          "metadata": {
           "isWidgetSnapshot": true
          },
          "output_type": "display_data"
         }
        ],
        "source": "display(exporter_names, export_button, download_link)"
       },
       "cell_index": 12,
       "root": true
      }
     ]
    },
    "fb7fe2e045234369857f4005326bc405": {
     "views": [
      {
       "cell": {
        "cell_type": "code",
        "execution_count": 7,
        "metadata": {
         "collapsed": false,
         "trusted": true
        },
        "outputs": [
         {
          "data": {
           "image/png": "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Szlp0KBBsWPHjqmnnnrq8lKOdwwBAgQIECBAgACBSgjYFaqEumsSIECAAAECBAgQIECAQM0KCNo121oTI0CAAAECBAgQIECAAIFKCAjalVB3TQIECBAgQIAAAQIECBCoWQFBu2Zba2IECBAgQIAAAQIECBAgUAmBnqDd/W7BDYMHD27t6OjYrxKFuGZtCNTX1/97+/btzU1NTW21MSOzIECAAAECBAgQIECAQO8EeoJ2W1tb18iRI2P48OG9G8HRBHYRaG9vjy1btkRDQ4O7JawMAgQIECBAgAABAgQKKdAThlpbW7u6dyELiWDS2Qokn6Xc3NwsaGfLajQCBAgQIECAAAECBHIiIGjnpFF5KlPQzlO31EqAAAECBAgQIECAQNYCgnbWosYLQdsiIECAAAECBAgQIECgyAKCdpG7X6a5C9plgjUsAQIECBAgQIAAAQK5EBC0c9GmfBUpaOerX6olQIAAAQIECBAgQCBbAUE7W0+jdQsI2pYBAQIECBAgQIAAAQJFFhC0i9z9Ms1d0C4TrGEJECBAgAABAgQIEMiFgKCdizblq0hBO1/9Ui0BAgQIECBAgAABAtkKCNrZehqtW0DQtgwIECBAgAABAgQIECiyQCGC9o8//hhLliyJVatWxfXXX5/2u7OzM955552466674thjjy3yGsh87oJ25qQGJECAAAECBAgQIEAgRwKFCNpJP1paWmLmzJnxySef9LTn22+/jd9//z1OPvnksrfs3XffjYaGhjj00EPLfq1KX0DQrnQHXJ8AAQIECBAgQIAAgUoKFCZot7a2xg033PA/QTuB7+joiPr6+rL24Keffoorr7wy3VUXtMtKbXACBAgQIECAAAECBAhUXKCwQTu5dfytt96KCRMmxDfffJPeQp6E7qVLl8acOXNi7NixMXHixHj22Wdjw4YN6W70K6+8EkceeWTcc889ceCBB8bmzZtjzZo1ccghh6TPJV933XUxYsSIdIwPPvggzjjjjHjxxRdj+vTpcffdd8fVV18d48ePj+OPP77ijS9nAXa0y6lrbAIECBAgQIAAAQIEql2gUEE7Cbw7n9H+8ssv45RTTonLLrss7dEPP/wQU6dOjdtvvz22bt0al1xySfr1999/Px588MF44okn4qCDDkp3pk877bQ0PE+ePDmefvrpGDZsWKxbty7uvffeeOmll9JgfuONN8ayZcvSW9NHjRqVBuwkqNvRrvZvCfURIECAAAECBAgQIECgfwKFCtq73jq+Y8eOePvtt9Md7Z2vlStXxsKFC2Pt2rWx//77p1/++OOP48knn0x/Ja/nn38+kuetZ8yYke58v/nmm+nX//777xg3blw8/vjj6a3ot9xySxqsd74E7f4tVGcTIECAAAECBAgQIEAgLwKFDdo7G7TrM9rJDnRyO/npp5+e7lzvKWivXr06DeiXX355ujv+4YcfRl1dXXrsOeecEw888ED6Z0G7uWdt5eWbQZ0ECBAgQIAAAQIECBDIQqDQQTt5TnvFihUxZcqU+OKLL6K9vT2OO+649Hby5Fbxo48+Ot3RXrBgQSxfvjz1nj9/fvpxYGeddVZMmjQpZs2aFWeffXb89ttvce2116a3i2/atClmz54dr776ak+Pkue1kzEOOOCA9Bb0Wn55RruWu2tuBAgQIECAAAECBAjsS6AQQTv5HO2nnnoqfX562rRpMXTo0EhuHf/000/T57KPOOKIuOOOO+Lhhx9O3+QsuS08Cd3z5s2Ln3/+OX2jtGSHO9mp/uWXX9JAnby++uqrNHg3NTXFX3/9Feeff34cfvjh6W3mixcvjvvuuy/dHU9ec+fOjaSOZKe71j+3W9De17edvydAgAABAgQIECBAoJYFChG0+9PA3Z/R7s9YRTlX0C5Kp82TAAECBAgQIECAAIE9CQja+1gXH330UbobvvPN0CyjfQsI2vs2cgQBAgQIECBAgAABArUrIGjvpbfJc9eLFi1K3yAtuUX8pJNOqt2VkOHMBO0MMQ1FgAABAgQIECBAgEDuBATt3LWs+gsWtKu/RyokQIAAAQIECBAgQKB8AoJ2+WwLO7KgXdjWmzgBAgQIECBAgAABAt0CgrZlkLmAoJ05qQEJECBAgAABAgQIEMiRgKCdo2blpVRBOy+dUicBAgQIECBAgAABAuUQELTLoVrwMQXtgi8A0ydAgAABAgQIECBQcAFBu+ALoBzTF7TLoWpMAgQIECBAgAABAgTyIiBo56VTOapT0M5Rs5RKgAABAgQIECBAgEDmAj1Be/369V2jR4+OIUOGZH4RAxZHYNu2bbFx48ZobGzsWVvFmb2ZEiBAgAABAgQIECBAYJd3HW9paZlSV1e3rLOzkwuBPgsMGjQourq6po4ZM2Z5nwdxIgECBAgQIECAAAECBHIsYNcxx81TOgECBAgQIECAAAECBAhUn4CgXX09UREBAgQIECBAgAABAgQI5FhA0M5x85ROgAABAgQIECBAgAABAtUnIGhXX09URIAAAQIECBAgQIAAAQI5FhC0c9w8pRMgQIAAAQIECBAgQIBA9QkI2tXXExURIECAAAECBAgQIECAQI4FBO0cN0/pBAgQIECAAAECBAgQIFB9AoJ29fVERQQIECBAgAABAgQIECCQYwFBO8fNUzoBAgQIECBAgAABAgQIVJ+AoF19PVERAQIECBAgQIAAAQIECORYQNDOcfOUToAAAQIECBAgQIAAAQLVJ/AfhQ2rlK0xgygAAAAASUVORK5CYII=",
           "text/html": "<img src= class=\"jupyter-widget\">\n<script type=\"application/vnd.jupyter-embedded-widgets\">[{},{\"layout\":\"IPY_MODEL_539631829f7d42f69900a8be5dfc1a9d\",\"_options_labels\":[\"custom\",\"html\",\"latex\",\"markdown\",\"notebook\",\"pdf\",\"python\",\"rst\",\"script\",\"slides\"],\"value\":\"html\"},{},{\"layout\":\"IPY_MODEL_b742a29038314a40ad129fe0b04d52c9\",\"description\":\"Export\"},{},{\"visible\":false,\"layout\":\"IPY_MODEL_995a5d0765ed408bab7092202d894a17\"}]</script>"
          },
          "metadata": {
           "isWidgetSnapshot": true
          },
          "output_type": "display_data"
         }
        ],
        "source": "display(exporter_names, export_button, download_link)"
       },
       "cell_index": 12,
       "root": true
      }
     ]
    }
   },
   "version": "0.0.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
